//
//  MyNSTimerTool.h
//  AiKline
//
//  Created by tianlong on 16/7/10.
//  Copyright © 2016年 YJNetwork. All rights reserved.
//

#import <Foundation/Foundation.h>



typedef void(^MyNSTimerToDoBlock)();

@interface MyNSTimerTool : NSObject

/**
 *  要执行的任务
 */
@property (nonatomic, copy) MyNSTimerToDoBlock timeToDoBlock;

#pragma mark - GCD延迟开启
/**
 *  延迟开启
 *  @param actionTimeInterval GCD隔多少秒调用一次事件
 *  @param delayTimeInterval 延迟多少秒后开始执行,如果不需要延迟执行则传0
 *  @param toDo         想要做的事情
 */
- (void)startNSTimerWithActionTimeInterval:(float)actionTimeInterval DelayTimeInterval:(float)delayTimeInterval repeats:(BOOL)repeats wantToDo:(void(^)())toDo;

#pragma mark - 马上开启
/**
 *  马上开启
 *  @param actionTimeInterval 隔多少秒调用一次事件
 *  @param toDo         想要做的事情
 */
- (void)startNSTimerWithActionTimeInterval:(float)actionTimeInterval repeats:(BOOL)repeats wantToDo:(void(^)())toDo;

#pragma mark - 定时器自带多少间隔之后再开启
/**
 *  定时器自带多少间隔之后开启
 *
 *  @param delayTimeInterval  多少秒之后
 *  @param repeats            是否重复
 *  @param toDo               要做的事情
 */
- (void)startNSTimerWithDelayTimeInterval:(float)delayTimeInterval repeats:(BOOL)repeats wantToDo:(void(^)())toDo;

#pragma mark - 手动开启定时器
-(void)ManualTimerWithActionTimeInterval:(float)actionTimeInterval repeats:(BOOL)repeats wantToDo:(void(^)())toDo;


#pragma mark - 继续开始
-(void)start;

#pragma mark - 暂停
-(void)pause;

#pragma mark - 停止并移除
-(void)stopAndRemoveNSTimer;

@end
